草庐IT

c++ - 临时实例的常量正确性

全部标签

ruby - 如何让 xcode 在运行脚本时使用正确版本的 ruby​​?

在xcode中,我有一个运行ruby​​脚本的“运行脚本”构建阶段。但是,似乎xcode正在尝试使用默认的mac1.8版本的ruby​​而不是最新版本来运行它。鉴于脚本需要一个gem,它失败并出现require错误并且错误中的路径指向/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/显然,该路径中的1.8让我产生了怀疑。如果我打开终端并运行命令ruby-v然后它会正确返回2.0.0p0我使用RVM安装并设置为默认值。如何让Xcode在正确的位置查找?还是我误解了这个错误?更新

ruby-on-rails - 对象实例的未定义​​方法 `includes'

我正在使用Ruby2.2.1和Rails4.2构建应用程序。在我的一个View中,我收到了以下消息:N+1QuerydetectedPolitician=>[:account]Addtoyourfinder::includes=>[:account]N+1Querymethodcallstackapp/models/user.rb:19:in`account'app/controllers/home_controller.rb:6:in`index'这是我在家庭Controller中的操作:@account=current_user.account@new_contacts=curre

ruby - 在 Mixins 中初始化实例变量

是否有任何干净的方法来初始化旨在用作Mixin的模块中的实例变量?例如,我有以下内容:moduleExampledefon(...)@handlers||={}#dosomethingwith@handlersenddefall(...)@all_handlers||=[]#dosomethingwith@all_handlersenddefunhandled(...)@unhandled||=[]#dosomethingwithunhandledenddefdo_something(..)@handlers||={}@unhandled||=[]@all_handlers||=[]#

ruby - 仅当前类的实例方法列表

我有一个O类的实例o。我想知道o的功能。o.methods会给我很多方法。所以我通常做o.methods-Object.instance_methods。但这并不简洁。我想做类似o.methods-o.class.superclass.instance_methods的事情。也就是说,只有O本身定义的方法。还有其他办法吗? 最佳答案 您可以使用方法Module#instance_methods:o.class.instance_methods(false)警告文档似乎是错误的,它说:Withnoargument,orwithanar

ruby 1.9.3 不能使用 open3(未初始化的常量 ConfigureController::Open3)

该项目在Ruby1.9.2中运行良好,但我想使用1.9.3。此行在1.9.2中运行良好:o,e,s=Open3.capture3("echoa;sort>&2",:stdin_data=>"foo\nbar\nbaz\n")但是在1.9.3中,我得到了未初始化常量ConfigureController::Open3我必须安装模块还是什么?谢谢! 最佳答案 您是否在源文件的顶部require'open3'?有可能之前,它是您需要的其他东西所必需的,但现在在1.9.3中则不是。您可能需要明确要求它。

ruby - 有没有一种优雅的方法来测试一个实例方法是否是另一个实例方法的别名?

在单元测试中,我需要测试是否正确定义了alias_method定义的别名方法。我可以简单地对用于其原件的别名使用相同的测试,但我想知道是否有更明确或更有效的解决方案。例如,有没有办法1)取消引用方法别名并返回其原始名称,2)获取并比较某种底层方法标识符或地址,或3)获取并比较方法定义?例如:classMyClassdeffoo#dosomethingendalias_method:bar,:fooenddescribeMyClassdoit"methodbarshouldbeanaliasformethodfoo"dom=MyClass.new#???identity(m.bar).s

Ruby:有没有办法获取类的封闭模块常量?

我正在用Ruby进行一些元编程,我需要在模块内动态生成一个同级类。这样做时,我想在模块上调用const_set,但直到运行时我才知道要调用哪个模块常量。一个例子:给定的类Foo::Bar::BazFoo::Quox::Quack我希望能够调用这样的函数(这里过于简单):defgenerate_fromklassmod=klass.enclosing_module#当使用Baz调用时,我最终想要的是一个定义为的新类Foo::Bar::GeneratedClassName还有嘎嘎,我想要Foo::Quox::GeneratedClassName我知道的唯一方法是拆分klass.name,然

Ruby:为什么卡住分配给常量的可变对象?

考虑一下rubocop报告的这个罪行lib/awesomelib/aws.rb:6:10:C:Style/MutableConstant:Freezemutableobjectsassignedtoconstants.IP='34.111.241.111'^^^^^^^^^^^^^^^^我为什么要卡住这个IP地址? 最佳答案 您应该卡住分配给IP的值,因为您已将IP声明为常量。这表示您不希望分配给IP的值发生变化。问题在于,在ruby​​中,为常量赋值并不能使该值不可变。如果您改变分配给常量的值,您只会收到警告。要使值实际上不可变,

ruby-on-rails - Ruby:我可以在类方法中使用实例方法吗?

我有一个包含此类方法的类:defself.get_event_record(row,participant)event=Event.where(:participant_id=>participant.id,:event_type_code=>row[:event_type],:event_start_date=>self.format_date(row[:event_start_date])).firstevent=Event.new(:participant_id=>participant.id,:event_type_code=>row[:event_type],:event_s

ruby-on-rails - 未初始化常量 > ActionCable::Server::Configuration::ApplicationCable

当我运行服务器时,它的抛出错误显示在下面的日志中。我在谷歌上搜索了很多,但没有找到背后的原因。有人请点亮它。gem文件source'https://rubygems.org'#BundleedgeRailsinstead:gem'rails',github:'rails/rails'gem'rails','>=5.0.0.beta1','0.10.0.rc1'group:development,:testdogem'byebug'endgem'puma'group:developmentdogem'spring'end日志:/home/pd/.rvm/gems/ruby-2.2.4/g